#include "KVTree.h"

void TestBSTree3()
{
    // 输入单词，查找单词对应的中文翻译
    BSTree<string, string> dict;
    dict.Insert("string", "字符串");
    dict.Insert("tree", "树");
    dict.Insert("left", "左边、剩余");
    dict.Insert("right", "右边");
    dict.Insert("sort", "排序");
    // 插入词库中所有单词
    string str;
    while (cin>>str)
    {
        BSTNode<string, string>* ret = dict.Find(str);
        if (ret == nullptr)
        {
        cout << "单词拼写错误，词库中没有这个单词:" <<str <<endl;
        }
        else
        {
        cout << str << "中文翻译:" << ret->_value << endl;
        }
    }
}

void TestBSTree4()
{
    // 统计水果出现的次数
    string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜",
    "苹果", "香蕉", "苹果", "香蕉" };
    BSTree<string, int> countTree;
    for (const auto& str : arr)
    {
        auto ret = countTree.Find(str);
        if (ret == nullptr)
        {
            countTree.Insert(str, 1);
        }
        else
        {
            ret->_value++;
        }
    }
    countTree.InOrder();
}
int main()
{
    TestBSTree4();
    return 0;
}